ALMaSS  1.0
The Animal, Landscape and Man Simulation System
PlantGrowthData Class Reference

#include <plants.h>

Public Member Functions

double GetLAgreenDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase)
 Get the differential in LA green for the day degrees experienced. More...
 
double GetLAtotalDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase)
 Get the differential in LA total for the day degrees experienced. More...
 
double GetHeightDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase)
 Get the differential in veg height for the day degrees experienced. More...
 
double GetLAgreenDiffScaled (double a_ddegs, double a_yddegs, int a_plant, int a_phase, double a_scaler)
 Get the differential in LA green for the day degrees experienced, scalable depending on plant growth ability. More...
 
double GetLAtotalDiffScaled (double a_ddegs, double a_yddegs, int a_plant, int a_phase, double a_scaler)
 Get the differential in LA total for the day degrees experienced, scalable depending on plant growth ability. More...
 
double GetHeightDiffScaled (double a_ddegs, double a_yddegs, int a_plant, int a_phase, double a_scaler)
 Get the differential in veg height for the day degrees experienced, scalable depending on plant growth ability. More...
 
double GetStartValue (int a_veg_type, int a_phase, int a_type)
 
bool StartValid (int a_veg_type, int a_phase)
 
int GetNumCrops ()
 
int VegTypeToCurveNum (TTypesOfVegetation VegReference)
 
double GetWeedPercent (TTypesOfVegetation a_letype)
 
double GetBugPercentA (TTypesOfVegetation a_letype)
 
double GetBugPercentB (TTypesOfVegetation a_letype)
 
double GetBugPercentC (TTypesOfVegetation a_letype)
 
double GetBugPercentD (TTypesOfVegetation a_letype)
 
bool GetNutStatus (int a_plant_num)
 
bool GetNutStatusExt (int a_plant)
 
 PlantGrowthData (const char *a_cropcurvefile)
 
 ~PlantGrowthData ()
 

Private Member Functions

double FindDiff (double a_ddegs, double a_yddegs, int a_plant, int a_phase, int a_type)
 
unsigned int FindCropNum (ifstream &ist)
 
void SetVegNum (unsigned int a_i, ifstream &ist, const char *a_cropcurvefile)
 
void MakeBugPercentArray (void)
 
void ReadBugPercentageFile (void)
 

Private Attributes

vector< CropGrowth * > m_growth
 
vector< int > m_numbers
 
int m_num_crops
 
ifstream m_ifile
 
double * m_weed_percent
 
double * m_bug_percent_a
 
double * m_bug_percent_b
 
double * m_bug_percent_c
 
int * m_bug_percent_d
 

Constructor & Destructor Documentation

◆ PlantGrowthData()

PlantGrowthData::PlantGrowthData ( const char *  a_cropcurvefile)
158 {
159  // Just finds out how many veg curves there are.
160  ifstream ist(a_vegcurvefile, ios::in);
161  unsigned int NoPlants = FindCropNum(ist);
162 
163  for ( unsigned int i=0; i<NoPlants; i++) {
164  CropGrowth* temp;
165  temp = new CropGrowth;
166  m_growth[ i ] = temp;
167  SetVegNum( i, ist, a_vegcurvefile );
168 
169 /*
170  for (int mmm=0; mmm < 10; ++mmm) {
171  int myin;
172  ist >> myin;
173  cout <<
174  }
175 */
176 
177  for (unsigned int j=0; j<5; j++) { // for each growth phase
178  // 'Local' index into crop growth curves.
179  int lk = 0;
180  for (unsigned int k=0; k<MaxNoInflections; k++) {
181  // for each inflection point
182  int entry;
183  //fscanf( m_ifile, "%d", &entry );
184  ist >> entry;
185  float f1=0,f2=0,f0=0;
186  if ( entry == -1 ) {
187  // Crop start data.
188  m_growth[ i ]->m_start_valid[j] = true;
189  //fscanf( m_ifile, "%g %g %g",&f1,&f0,&f2);
190  ist >> f1 >> f0 >> f2;
191  FloatToDouble(m_growth[ i ]->m_start[j][1],f1);
192  FloatToDouble(m_growth[ i ]->m_start[j][0],f0);
193  FloatToDouble(m_growth[ i ]->m_start[j][2],f2);
194  } else {
195  // Add inflection point to normal growth curves.
196  m_growth[ i ]->m_dds[j][lk] = (double)entry;
197  //fscanf( m_ifile, "%g %g %g",&f1,&f0,&f2);
198  ist >> f1 >> f0 >> f2;
199  FloatToDouble(m_growth[ i ]->m_slopes[j][1][lk],f1);
200  FloatToDouble(m_growth[ i ]->m_slopes[j][0][lk],f0);
201  FloatToDouble(m_growth[ i ]->m_slopes[j][2][lk],f2);
202  lk++;
203  }
204  } // MaxNoInflections
205  } // Growth Phases
206  } // NoPlants
207  //fclose( m_ifile );
208 }
Definition: plants.h:67
unsigned int FindCropNum(ifstream &ist)
Definition: plants.cpp:103
void SetVegNum(unsigned int a_i, ifstream &ist, const char *a_cropcurvefile)
Definition: plants.cpp:131
vector< CropGrowth * > m_growth
Definition: plants.h:82
void FloatToDouble(double &, float)
Definition: ALMaSS_CmdLine.cpp:174
const unsigned int MaxNoInflections
Definition: plants.h:41

References FindCropNum(), FloatToDouble(), m_growth, MaxNoInflections, and SetVegNum().

◆ ~PlantGrowthData()

PlantGrowthData::~PlantGrowthData ( )
211 {
212  for ( unsigned int i=0; i<m_growth.size(); i++ )
213  delete m_growth[i];
214 }

References m_growth.

Member Function Documentation

◆ FindCropNum()

unsigned int PlantGrowthData::FindCropNum ( ifstream &  ist)
private
104 {
105  int NoPlants;
106 
107  m_numbers.resize(201);
108  for ( unsigned int i=0; i<201; i++) {
109  m_numbers[ i ] = -1;
110  }
111 
112  //m_ifile = fopen(a_cropcurvefile, "r" );
113  //ifstream m_ifile(a_cropcurvefile);
114  /*
115  if (!m_ifile){
116  g_msg->Warn(WARN_FILE, "PlantGrowthData::PlantGrowthData: Unable to open file",
117  a_cropcurvefile );
118  exit(1);
119  }
120  */
121  //fscanf( m_ifile , "%d", &NoPlants ); // How many tables to read in
122  ist >> NoPlants;
123  m_growth.resize( NoPlants );
124  m_num_crops = NoPlants;
125 
126  return NoPlants;
127 }
int m_num_crops
Definition: plants.h:84
vector< int > m_numbers
Definition: plants.h:83

References m_growth, m_num_crops, and m_numbers.

Referenced by PlantGrowthData().

◆ FindDiff()

double PlantGrowthData::FindDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
int  a_type 
)
private
45 {
46  // Check for valid plant number at runtime?
47  // This is broken for growth curves where one can risk passing
48  // more than a single inflection point in the growth curve in a
49  // single day...
50 
51  int index = m_numbers[ a_plant ];
52  unsigned int oldindex=0, newindex=0;
53 
54  if ( m_growth[ index ]->m_dds[ a_phase ][ 0 ] == 99999 ) {
55  return 0.0;
56  }
57 
58  for ( unsigned int i=0; i<MaxNoInflections; i++ ) {
59  // In other words: If the current value for summed day degrees
60  // is smaller than the X position of the *next* inflection
61  // point, then we are in the correct interval.
62  if ( m_growth[ index ]->m_dds[ a_phase ][ i+1 ] > a_ddegs ) {
63  newindex = i;
64  break;
65  // return m_growth[ index ]->m_slopes[ a_phase ][ a_type ][i];
66  }
67  }
68 
69  for ( unsigned int i=0; i<MaxNoInflections; i++ ) {
70  if ( m_growth[ index ]->m_dds[ a_phase ][ i+1 ] > a_yddegs ) {
71  oldindex = i;
72  break;
73  // return m_growth[ index ]->m_slopes[ a_phase ][ a_type ][i];
74  }
75  }
76 
77  double diff;
78 
79  if ( newindex > oldindex ) {
80  // We have passed an inflection point between today and yesterday.
81  // First add the increment from yesterdays day degree sum up to
82  // the inflection point.
83  double dddif =
84  m_growth[ index ]->m_dds[ a_phase ][ newindex ] - a_yddegs;
85  diff =
86  m_growth[ index ]->m_slopes[ a_phase ][ a_type ][oldindex]*
87  dddif;
88 
89  // Then from the inflection point up to today.
90  dddif = a_ddegs -
91  m_growth[ index ]->m_dds[ a_phase ][ newindex ];
92  diff +=
93  m_growth[ index ]->m_slopes[ a_phase ][ a_type ][ newindex ]*
94  dddif;
95  } else {
96  // No inflection point passed.
97  diff = m_growth[ index ]->m_slopes[ a_phase ][ a_type ][ newindex ] *
98  (a_ddegs - a_yddegs);
99  }
100  return diff;
101 }

References m_growth, m_numbers, and MaxNoInflections.

◆ GetBugPercentA()

double PlantGrowthData::GetBugPercentA ( TTypesOfVegetation  a_letype)
inline
151  {
152  return m_bug_percent_a[ a_letype ];
153  }
double * m_bug_percent_a
Definition: plants.h:88

◆ GetBugPercentB()

double PlantGrowthData::GetBugPercentB ( TTypesOfVegetation  a_letype)
inline
156  {
157  return m_bug_percent_b[ a_letype ];
158  }
double * m_bug_percent_b
Definition: plants.h:89

◆ GetBugPercentC()

double PlantGrowthData::GetBugPercentC ( TTypesOfVegetation  a_letype)
inline
161  {
162  return m_bug_percent_c[ a_letype ];
163  }
double * m_bug_percent_c
Definition: plants.h:90

◆ GetBugPercentD()

double PlantGrowthData::GetBugPercentD ( TTypesOfVegetation  a_letype)
inline
166  {
167  return (double) m_bug_percent_d[ a_letype ];
168  }
int * m_bug_percent_d
Definition: plants.h:91

◆ GetHeightDiff()

double PlantGrowthData::GetHeightDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase 
)
inline

Get the differential in veg height for the day degrees experienced.

115  {
116  return FindDiff(a_ddegs, a_yddegs, a_plant, a_phase, 2);
117  }
double FindDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase, int a_type)
Definition: plants.cpp:43

Referenced by VegElement::ForceGrowthSpringTest().

◆ GetHeightDiffScaled()

double PlantGrowthData::GetHeightDiffScaled ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
double  a_scaler 
)
inline

Get the differential in veg height for the day degrees experienced, scalable depending on plant growth ability.

125 { return a_scaler* GetHeightDiff(a_ddegs, a_yddegs, a_plant, a_phase); }
double GetHeightDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase)
Get the differential in veg height for the day degrees experienced.
Definition: plants.h:115

Referenced by VegElement::DoDevelopment().

◆ GetLAgreenDiff()

double PlantGrowthData::GetLAgreenDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase 
)
inline

Get the differential in LA green for the day degrees experienced.

107  {
108  return FindDiff(a_ddegs, a_yddegs, a_plant, a_phase, 0);
109  }

Referenced by VegElement::ForceGrowthSpringTest().

◆ GetLAgreenDiffScaled()

double PlantGrowthData::GetLAgreenDiffScaled ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
double  a_scaler 
)
inline

Get the differential in LA green for the day degrees experienced, scalable depending on plant growth ability.

121 { return a_scaler* GetLAgreenDiff(a_ddegs, a_yddegs, a_plant, a_phase); }
double GetLAgreenDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase)
Get the differential in LA green for the day degrees experienced.
Definition: plants.h:107

Referenced by VegElement::DoDevelopment().

◆ GetLAtotalDiff()

double PlantGrowthData::GetLAtotalDiff ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase 
)
inline

Get the differential in LA total for the day degrees experienced.

111  {
112  return FindDiff(a_ddegs, a_yddegs, a_plant, a_phase, 1);
113  }

Referenced by VegElement::DoDevelopment(), UnsprayedFieldMargin::DoDevelopment(), and VegElement::ForceGrowthSpringTest().

◆ GetLAtotalDiffScaled()

double PlantGrowthData::GetLAtotalDiffScaled ( double  a_ddegs,
double  a_yddegs,
int  a_plant,
int  a_phase,
double  a_scaler 
)
inline

Get the differential in LA total for the day degrees experienced, scalable depending on plant growth ability.

123 { return a_scaler* GetLAtotalDiff(a_ddegs, a_yddegs, a_plant, a_phase); }
double GetLAtotalDiff(double a_ddegs, double a_yddegs, int a_plant, int a_phase)
Get the differential in LA total for the day degrees experienced.
Definition: plants.h:111

Referenced by VegElement::DoDevelopment().

◆ GetNumCrops()

int PlantGrowthData::GetNumCrops ( )
inline
135  {
136  return m_num_crops;
137  }

Referenced by CropRotation::GetFirstCrop().

◆ GetNutStatus()

bool PlantGrowthData::GetNutStatus ( int  a_plant_num)
inline
170  {
171  return m_growth[ a_plant_num ]->m_lownut;
172  }

Referenced by CropRotation::GetFirstCrop().

◆ GetNutStatusExt()

bool PlantGrowthData::GetNutStatusExt ( int  a_plant)
inline
174  {
175  return m_growth[ m_numbers[ a_plant ]]->m_lownut;
176  }

◆ GetStartValue()

double PlantGrowthData::GetStartValue ( int  a_veg_type,
int  a_phase,
int  a_type 
)
inline
127  {
128  return m_growth[m_numbers[a_veg_type]]->m_start[a_phase][a_type];
129  }

Referenced by VegElement::ForceGrowthInitialize(), and VegElement::SetGrowthPhase().

◆ GetWeedPercent()

double PlantGrowthData::GetWeedPercent ( TTypesOfVegetation  a_letype)
inline
146  {
147  return m_weed_percent[ a_letype ];
148  }
double * m_weed_percent
Definition: plants.h:87

◆ MakeBugPercentArray()

void PlantGrowthData::MakeBugPercentArray ( void  )
private

◆ ReadBugPercentageFile()

void PlantGrowthData::ReadBugPercentageFile ( void  )
private

◆ SetVegNum()

void PlantGrowthData::SetVegNum ( unsigned int  a_i,
ifstream &  ist,
const char *  a_cropcurvefile 
)
private
132 {
133  int ThisPlant;
134 
135  // Find out what crop and what nutrient status
136  //fscanf( m_ifile, "%d", &ThisPlant);
137 
138  ist >> ThisPlant;
139  // Check if valid plant number (from the file).
140  if ( ThisPlant < 0 || ThisPlant > 200 ) {
141  g_msg->Warn(WARN_FILE, "PlantGrowthData::FindCropNum(): Illegal plant number"
142  " specified in", a_cropcurvefile );
143  exit(1);
144  }
145 
146  m_numbers[ ThisPlant ] = a_i;
147 
148  // if greater than 100 then it is low nutrient
149  if ( ThisPlant > 100 ) {
150  m_growth[ a_i ]->m_lownut = true;
151  } else {
152  m_growth[ a_i ]->m_lownut = false;
153  }
154 }
void Warn(MapErrorState a_level, std::string a_msg1, std::string a_msg2)
Definition: maperrormsg.cpp:59
class MapErrorMsg * g_msg
This pointer provides access the to the internal ALMaSS error message system.
Definition: maperrormsg.cpp:41
@ WARN_FILE
Definition: maperrormsg.h:37

References g_msg, m_growth, m_numbers, MapErrorMsg::Warn(), and WARN_FILE.

Referenced by PlantGrowthData().

◆ StartValid()

bool PlantGrowthData::StartValid ( int  a_veg_type,
int  a_phase 
)
410 {
411  int a=m_numbers[ a_veg_type ];
412  CropGrowth* p=m_growth[a];
413  return p-> m_start_valid[ a_phase ];
414 }

References m_growth, and m_numbers.

Referenced by VegElement::ForceGrowthInitialize(), and VegElement::SetGrowthPhase().

◆ VegTypeToCurveNum()

int PlantGrowthData::VegTypeToCurveNum ( TTypesOfVegetation  VegReference)
227 {
228  char error_num[20];
229 
230  switch (VegReference)
231  {
233  case tov_OSpringBarley:
235  return 101;
237  case tov_SpringBarley:
238  case tov_SpringBarleySpr:
245  case tov_PLSpringBarley: //Needs to be changed later
246  case tov_PLSpringWheat:
248  case tov_NLSpringBarley:
250  return 1;
251  case tov_WinterBarley:
253  case tov_PLWinterBarley: //Needs to be changed later
254  return 2;
255  case tov_OWinterBarley:
257  return 102;
258  case tov_WinterWheat:
264  case tov_WWheatPControl:
267  case tov_PLWinterWheat: // Needs to be changed later
269  case tov_DummyCropPestTesting: // just for testing of spraying distribution
270  case tov_NLWinterWheat:
271  return 4;
272  case tov_OWinterWheat:
274  return 104;
275  case tov_WinterRye:
277  case tov_PLWinterRye: //Needs to be changed later
278  return 5;
279  case tov_OWinterRye:
280  return 105;
281  case tov_Oats:
282  case tov_NorwegianOats:
283  return 6;
284  case tov_OOats:
285  return 106;
286  case tov_Maize:
287  case tov_MaizeSilage:
288  case tov_MaizeStrigling:
289  case tov_PLMaize: //Needs to be changed later
290  case tov_PLMaizeSilage: //Needs to be changed later
291  case tov_NLMaize:
292  case tov_NLMaizeSpring:
293  return 8;
294  case tov_OMaizeSilage:
295  return 108;
300  return 13;
302  case tov_OSBarleySilage:
305  return 113;
306  case tov_WinterRape:
308  case tov_PLWinterRape: // Needs to be changed later
309  return 22;
310  case tov_OWinterRape:
311  return 22;
314  return 25;
317  return 26;
318  case tov_SeedGrass1:
319  case tov_SeedGrass2:
320  case tov_OSeedGrass1:
321  case tov_OSeedGrass2:
322  return 27;
323  case tov_FodderGrass:
329  case tov_OGrazingPigs:
330  case tov_PLFodderLucerne2: //Needs to be changed later
331  case tov_NLGrassGrazed2:
334  return 29;
335  case tov_PLFodderLucerne1: //Needs to be changed later
336  case tov_NLGrassGrazed1:
338  return 70;
339  case tov_OFieldPeas:
341  case tov_FieldPeas:
343  case tov_FieldPeasSilage:
344  case tov_BroadBeans:
345  case tov_PLBeans:
346  case tov_NLCatchPeaCrop:
347  return 30;
348  case tov_Carrots:
349  case tov_PLCarrots: //Needs to be changed later
350  case tov_NLCarrots:
351  case tov_NLCabbage: //Needs to be changed later
352  case tov_NLCarrotsSpring:
353  case tov_NLCabbageSpring: //Needs to be changed later
354  return 41;
355  case tov_OCarrots:
356  return 141;
357  case tov_Potatoes:
359  case tov_PLPotatoes: //Needs to be changed later
361  case tov_NLPotatoes:
363  return 50;
364  case tov_OPotatoes:
365  return 150;
366  case tov_SugarBeet:
367  case tov_FodderBeet:
368  case tov_OFodderBeet:
369  case tov_PLBeet: //Needs to be changed later
370  case tov_PLBeetSpr:
371  case tov_NLBeet:
372  case tov_NLBeetSpring:
373  return 60;
374  // Special growth mode for green but unused elements.
375  // tov_PermanentSetaside Does not change growth phase no matter
376  // how hard one tries to do just that.
377  case tov_PermanentSetaside: return 92;
378  case tov_Heath:
379  case tov_Setaside:
380  case tov_OSetaside: return 112;
381  case tov_OrchardCrop:
382  case tov_YoungForest:
383  case tov_NaturalGrass:
384  case tov_Wasteland:
385  case tov_WaterBufferZone:
386  return 90;
387  case tov_NoGrowth:
388  case tov_PlantNursery:
389  return 91;
390  case tov_Lawn: return 94;
391  case tov_OTriticale:
392  case tov_Triticale:
393  case tov_PLWinterTriticale: //Needs to be changed later
394  return 7;
395  case tov_SpringRape: return 21;
396  case tov_NLTulips: return 80;
397 
398 
399  default: // No matching code so we need an error message of some kind
400  sprintf( error_num, "%d", VegReference );
401  g_msg->Warn( WARN_FILE,
402  "PlantGrowthData::VegTypeToCurveNum(): Unknown vegetation type:",
403  error_num );
404  exit( 1 );
405  }
406 }
@ tov_WWheatPControl
Definition: tov_declaration.h:55
@ tov_NLPotatoesSpring
Definition: tov_declaration.h:103
@ tov_OWinterWheatUndersown
Definition: tov_declaration.h:49
@ tov_WinterRyeStrigling
Definition: tov_declaration.h:59
@ tov_BroadBeans
Definition: tov_declaration.h:66
@ tov_PLBeans
Definition: tov_declaration.h:87
@ tov_MaizeStrigling
Definition: tov_declaration.h:58
@ tov_PermanentGrassGrazed
Definition: tov_declaration.h:49
@ tov_PLBeetSpr
Definition: tov_declaration.h:86
@ tov_NLSpringBarley
Definition: tov_declaration.h:93
@ tov_SpringBarleySKManagement
Definition: tov_declaration.h:65
@ tov_OFieldPeas
Definition: tov_declaration.h:43
@ tov_NLCarrots
Definition: tov_declaration.h:90
@ tov_NLGrassGrazedLast
Definition: tov_declaration.h:108
@ tov_SpringBarleyPTreatment
Definition: tov_declaration.h:63
@ tov_SpringBarleyPeaCloverGrassStrigling
Definition: tov_declaration.h:60
@ tov_OSpringBarleyPigs
Definition: tov_declaration.h:47
@ tov_WWheatPTreatment
Definition: tov_declaration.h:55
@ tov_SpringBarleyCloverGrassStrigling
Definition: tov_declaration.h:58
@ tov_PermanentSetaside
Definition: tov_declaration.h:49
@ tov_WinterWheatStriglingCulm
Definition: tov_declaration.h:62
@ tov_DummyCropPestTesting
Definition: tov_declaration.h:112
@ tov_FodderGrass
Definition: tov_declaration.h:62
@ tov_SeedGrass1
Definition: tov_declaration.h:50
@ tov_OGrazingPigs
Definition: tov_declaration.h:44
@ tov_NLGrassGrazed1Spring
Definition: tov_declaration.h:107
@ tov_NoGrowth
Definition: tov_declaration.h:38
@ tov_CloverGrassGrazed2
Definition: tov_declaration.h:33
@ tov_OSpringBarley
Definition: tov_declaration.h:46
@ tov_NLGrassGrazed2
Definition: tov_declaration.h:98
@ tov_PotatoesIndustry
Definition: tov_declaration.h:50
@ tov_PermanentGrassTussocky
Definition: tov_declaration.h:49
@ tov_OSpringBarleyExt
Definition: tov_declaration.h:63
@ tov_NLMaizeSpring
Definition: tov_declaration.h:102
@ tov_FieldPeasSilage
Definition: tov_declaration.h:65
@ tov_OWinterRape
Definition: tov_declaration.h:47
@ tov_OPotatoes
Definition: tov_declaration.h:44
@ tov_WinterRape
Definition: tov_declaration.h:53
@ tov_PLSpringBarley
Definition: tov_declaration.h:76
@ tov_OPermanentGrassGrazed
Definition: tov_declaration.h:44
@ tov_SpringBarley
Definition: tov_declaration.h:52
@ tov_OWinterBarley
Definition: tov_declaration.h:47
@ tov_NLBeetSpring
Definition: tov_declaration.h:100
@ tov_SpringBarleyStriglingSingle
Definition: tov_declaration.h:60
@ tov_PLPotatoes
Definition: tov_declaration.h:79
@ tov_OSeedGrass1
Definition: tov_declaration.h:46
@ tov_NLCabbageSpring
Definition: tov_declaration.h:105
@ tov_SpringBarleySilage
Definition: tov_declaration.h:52
@ tov_PLCarrots
Definition: tov_declaration.h:83
@ tov_SpringBarleySeed
Definition: tov_declaration.h:52
@ tov_NLCabbage
Definition: tov_declaration.h:95
@ tov_NLCarrotsSpring
Definition: tov_declaration.h:101
@ tov_PLWinterBarley
Definition: tov_declaration.h:72
@ tov_SpringBarleyCloverGrass
Definition: tov_declaration.h:52
@ tov_Carrots
Definition: tov_declaration.h:31
@ tov_Wasteland
Definition: tov_declaration.h:66
@ tov_FieldPeas
Definition: tov_declaration.h:34
@ tov_WWheatPToxicControl
Definition: tov_declaration.h:55
@ tov_OTriticale
Definition: tov_declaration.h:47
@ tov_OMaizeSilage
Definition: tov_declaration.h:65
@ tov_PLWinterTriticale
Definition: tov_declaration.h:73
@ tov_Triticale
Definition: tov_declaration.h:53
@ tov_NorwegianOats
Definition: tov_declaration.h:68
@ tov_OFodderBeet
Definition: tov_declaration.h:65
@ tov_WinterWheat
Definition: tov_declaration.h:55
@ tov_OCarrots
Definition: tov_declaration.h:43
@ tov_OSBarleySilage
Definition: tov_declaration.h:56
@ tov_WinterWheatStrigling
Definition: tov_declaration.h:59
@ tov_SeedGrass2
Definition: tov_declaration.h:50
@ tov_Lawn
Definition: tov_declaration.h:63
@ tov_PLMaizeSilage
Definition: tov_declaration.h:78
@ tov_OFieldPeasSilage
Definition: tov_declaration.h:56
@ tov_SugarBeet
Definition: tov_declaration.h:66
@ tov_NorwegianPotatoes
Definition: tov_declaration.h:68
@ tov_PermanentGrassLowYield
Definition: tov_declaration.h:63
@ tov_CloverGrassGrazed1
Definition: tov_declaration.h:32
@ tov_NLWinterWheat
Definition: tov_declaration.h:94
@ tov_SpringRape
Definition: tov_declaration.h:53
@ tov_SpringBarleySpr
Definition: tov_declaration.h:66
@ tov_NLPotatoes
Definition: tov_declaration.h:92
@ tov_OSeedGrass2
Definition: tov_declaration.h:46
@ tov_NaturalGrass
Definition: tov_declaration.h:37
@ tov_PLFodderLucerne2
Definition: tov_declaration.h:82
@ tov_Oats
Definition: tov_declaration.h:40
@ tov_MaizeSilage
Definition: tov_declaration.h:62
@ tov_OBarleyPeaCloverGrass
Definition: tov_declaration.h:41
@ tov_SpringBarleyStriglingCulm
Definition: tov_declaration.h:62
@ tov_Maize
Definition: tov_declaration.h:36
@ tov_OSpringBarleyClover
Definition: tov_declaration.h:46
@ tov_OCloverGrassSilage1
Definition: tov_declaration.h:43
@ tov_NLPermanentGrassGrazed
Definition: tov_declaration.h:99
@ tov_WinterRapeStrigling
Definition: tov_declaration.h:59
@ tov_PLMaize
Definition: tov_declaration.h:77
@ tov_WaterBufferZone
Definition: tov_declaration.h:110
@ tov_OCloverGrassGrazed2
Definition: tov_declaration.h:43
@ tov_Potatoes
Definition: tov_declaration.h:50
@ tov_NLSpringBarleySpring
Definition: tov_declaration.h:104
@ tov_PLSpringWheat
Definition: tov_declaration.h:75
@ tov_PLFodderLucerne1
Definition: tov_declaration.h:81
@ tov_Setaside
Definition: tov_declaration.h:50
@ tov_NLGrassGrazed1
Definition: tov_declaration.h:97
@ tov_OSpringBarleyGrass
Definition: tov_declaration.h:46
@ tov_OWinterWheat
Definition: tov_declaration.h:66
@ tov_OWinterBarleyExt
Definition: tov_declaration.h:65
@ tov_OWinterRye
Definition: tov_declaration.h:49
@ tov_OOats
Definition: tov_declaration.h:44
@ tov_Heath
Definition: tov_declaration.h:66
@ tov_OCloverGrassGrazed1
Definition: tov_declaration.h:43
@ tov_NLMaize
Definition: tov_declaration.h:91
@ tov_WinterBarleyStrigling
Definition: tov_declaration.h:59
@ tov_NLBeet
Definition: tov_declaration.h:89
@ tov_WinterRye
Definition: tov_declaration.h:55
@ tov_FodderBeet
Definition: tov_declaration.h:35
@ tov_NLTulips
Definition: tov_declaration.h:96
@ tov_WinterWheatStriglingSingle
Definition: tov_declaration.h:62
@ tov_PlantNursery
Definition: tov_declaration.h:66
@ tov_PLWinterRye
Definition: tov_declaration.h:74
@ tov_PLWinterWheatLate
Definition: tov_declaration.h:85
@ tov_WinterBarley
Definition: tov_declaration.h:53
@ tov_NLCatchPeaCrop
Definition: tov_declaration.h:106
@ tov_PLWinterWheat
Definition: tov_declaration.h:70
@ tov_SpringBarleyStrigling
Definition: tov_declaration.h:58
@ tov_PLBeet
Definition: tov_declaration.h:80
@ tov_NorwegianSpringBarley
Definition: tov_declaration.h:68
@ tov_WinterWheatShort
Definition: tov_declaration.h:56
@ tov_YoungForest
Definition: tov_declaration.h:60
@ tov_PLSpringBarleySpr
Definition: tov_declaration.h:84
@ tov_AgroChemIndustryCereal
Definition: tov_declaration.h:55
@ tov_OrchardCrop
Definition: tov_declaration.h:65
@ tov_FieldPeasStrigling
Definition: tov_declaration.h:56
@ tov_PLWinterRape
Definition: tov_declaration.h:71
@ tov_OSetaside
Definition: tov_declaration.h:46

References g_msg, tov_AgroChemIndustryCereal, tov_BroadBeans, tov_Carrots, tov_CloverGrassGrazed1, tov_CloverGrassGrazed2, tov_DummyCropPestTesting, tov_FieldPeas, tov_FieldPeasSilage, tov_FieldPeasStrigling, tov_FodderBeet, tov_FodderGrass, tov_Heath, tov_Lawn, tov_Maize, tov_MaizeSilage, tov_MaizeStrigling, tov_NaturalGrass, tov_NLBeet, tov_NLBeetSpring, tov_NLCabbage, tov_NLCabbageSpring, tov_NLCarrots, tov_NLCarrotsSpring, tov_NLCatchPeaCrop, tov_NLGrassGrazed1, tov_NLGrassGrazed1Spring, tov_NLGrassGrazed2, tov_NLGrassGrazedLast, tov_NLMaize, tov_NLMaizeSpring, tov_NLPermanentGrassGrazed, tov_NLPotatoes, tov_NLPotatoesSpring, tov_NLSpringBarley, tov_NLSpringBarleySpring, tov_NLTulips, tov_NLWinterWheat, tov_NoGrowth, tov_NorwegianOats, tov_NorwegianPotatoes, tov_NorwegianSpringBarley, tov_Oats, tov_OBarleyPeaCloverGrass, tov_OCarrots, tov_OCloverGrassGrazed1, tov_OCloverGrassGrazed2, tov_OCloverGrassSilage1, tov_OFieldPeas, tov_OFieldPeasSilage, tov_OFodderBeet, tov_OGrazingPigs, tov_OMaizeSilage, tov_OOats, tov_OPermanentGrassGrazed, tov_OPotatoes, tov_OrchardCrop, tov_OSBarleySilage, tov_OSeedGrass1, tov_OSeedGrass2, tov_OSetaside, tov_OSpringBarley, tov_OSpringBarleyClover, tov_OSpringBarleyExt, tov_OSpringBarleyGrass, tov_OSpringBarleyPigs, tov_OTriticale, tov_OWinterBarley, tov_OWinterBarleyExt, tov_OWinterRape, tov_OWinterRye, tov_OWinterWheat, tov_OWinterWheatUndersown, tov_PermanentGrassGrazed, tov_PermanentGrassLowYield, tov_PermanentGrassTussocky, tov_PermanentSetaside, tov_PlantNursery, tov_PLBeans, tov_PLBeet, tov_PLBeetSpr, tov_PLCarrots, tov_PLFodderLucerne1, tov_PLFodderLucerne2, tov_PLMaize, tov_PLMaizeSilage, tov_PLPotatoes, tov_PLSpringBarley, tov_PLSpringBarleySpr, tov_PLSpringWheat, tov_PLWinterBarley, tov_PLWinterRape, tov_PLWinterRye, tov_PLWinterTriticale, tov_PLWinterWheat, tov_PLWinterWheatLate, tov_Potatoes, tov_PotatoesIndustry, tov_SeedGrass1, tov_SeedGrass2, tov_Setaside, tov_SpringBarley, tov_SpringBarleyCloverGrass, tov_SpringBarleyCloverGrassStrigling, tov_SpringBarleyPeaCloverGrassStrigling, tov_SpringBarleyPTreatment, tov_SpringBarleySeed, tov_SpringBarleySilage, tov_SpringBarleySKManagement, tov_SpringBarleySpr, tov_SpringBarleyStrigling, tov_SpringBarleyStriglingCulm, tov_SpringBarleyStriglingSingle, tov_SpringRape, tov_SugarBeet, tov_Triticale, tov_Wasteland, tov_WaterBufferZone, tov_WinterBarley, tov_WinterBarleyStrigling, tov_WinterRape, tov_WinterRapeStrigling, tov_WinterRye, tov_WinterRyeStrigling, tov_WinterWheat, tov_WinterWheatShort, tov_WinterWheatStrigling, tov_WinterWheatStriglingCulm, tov_WinterWheatStriglingSingle, tov_WWheatPControl, tov_WWheatPToxicControl, tov_WWheatPTreatment, tov_YoungForest, MapErrorMsg::Warn(), and WARN_FILE.

Referenced by BeetleBank::BeetleBank(), FieldBoundary::FieldBoundary(), Heath::Heath(), HedgeBank::HedgeBank(), Hedges::Hedges(), Marsh::Marsh(), MownGrass::MownGrass(), NaturalGrassDry::NaturalGrassDry(), NaturalGrassWet::NaturalGrassWet(), Orchard::Orchard(), OrchardBand::OrchardBand(), PermanentSetaside::PermanentSetaside(), RoadsideVerge::RoadsideVerge(), VegElement::SetVegType(), UnsprayedFieldMargin::UnsprayedFieldMargin(), VegElement::VegElement(), Wasteland::Wasteland(), WaterBufferZone::WaterBufferZone(), and YoungForest::YoungForest().

Member Data Documentation

◆ m_bug_percent_a

double* PlantGrowthData::m_bug_percent_a
private

◆ m_bug_percent_b

double* PlantGrowthData::m_bug_percent_b
private

◆ m_bug_percent_c

double* PlantGrowthData::m_bug_percent_c
private

◆ m_bug_percent_d

int* PlantGrowthData::m_bug_percent_d
private

◆ m_growth

vector< CropGrowth * > PlantGrowthData::m_growth
private

◆ m_ifile

ifstream PlantGrowthData::m_ifile
private

◆ m_num_crops

int PlantGrowthData::m_num_crops
private

Referenced by FindCropNum().

◆ m_numbers

vector< int > PlantGrowthData::m_numbers
private

◆ m_weed_percent

double* PlantGrowthData::m_weed_percent
private

The documentation for this class was generated from the following files: